Real-time shared web browsing among social network contacts

ABSTRACT

A determination is made that each of at least two social network contacts involved in a social messaging interaction initiate a separate web search associated with the social messaging interaction. A separate set of web search results returned to each of the at least two social network contacts is captured in association with each initiated separate web search. A combined live search results view that includes each captured separate set of web search results is provided to each of the at least two social network contacts. The combined live search results view provides navigation to web content returned to other social network contacts.

BACKGROUND

The present invention relates to web browsing activities. Moreparticularly, the present invention relates to real-time shared browsingamong social network contacts.

Online social networks (OSNs) allow people to create accounts and todesignate other persons with OSN accounts as social network contacts(e.g., friends). OSNs allow social network contacts to communicate withone another by posting messages and photographs within a forum of theOSN. The posted messages and photos may be accessed and viewed by othersocial network contacts within the respective OSN.

BRIEF SUMMARY

A method includes determining, via a processor, that at least two socialnetwork contacts involved in a social messaging interaction eachinitiate a separate web search associated with the social messaginginteraction; capturing, in association with each initiated separate websearch, a separate set of web search results returned to each of the atleast two social network contacts; and providing, to each of the atleast two social network contacts, a combined live search results viewcomprising each captured separate set of web search results, where thecombined live search results view provides navigation to web contentreturned to other social network contacts.

A system includes an output module; and a processor programmed to:determine that at least two social network contacts involved in a socialmessaging interaction each initiate a separate web search associatedwith the social messaging interaction; capture, in association with eachinitiated separate web search, a separate set of web search resultsreturned to each of the at least two social network contacts; andprovide, via the output module, to each of the at least two socialnetwork contacts, a combined live search results view comprising eachcaptured separate set of web search results, where the combined livesearch results view provides navigation to web content returned to othersocial network contacts.

A computer program product includes a computer readable storage mediumhaving computer readable program code embodied therewith, where thecomputer readable program code when executed on a computer causes thecomputer to: determine that at least two social network contactsinvolved in a social messaging interaction each initiate a separate websearch associated with the social messaging interaction; capture, inassociation with each initiated separate web search, a separate set ofweb search results returned to each of the at least two social networkcontacts; and provide, to each of the at least two social networkcontacts, a combined live search results view comprising each capturedseparate set of web search results, where the combined live searchresults view provides navigation to web content returned to other socialnetwork contacts.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a block diagram of an example of an implementation of a systemfor real-time shared web browsing among social network contactsaccording to an embodiment of the present subject matter;

FIG. 2 is a block diagram of an example of an implementation of a coreprocessing module capable of performing real-time shared web browsingamong social network contacts according to an embodiment of the presentsubject matter;

FIG. 3A is a depiction of an example of an implementation of an initialstate of a live search results view graphical user interface (GUI) forreal-time shared web browsing among social network contacts according toan embodiment of the present subject matter;

FIG. 3B is a depiction of an example of an implementation of a secondstate of the live search results view GUI of FIG. 3A for real-timeshared web browsing among social network contacts according to anembodiment of the present subject matter;

FIG. 3C is a depiction of an example of an implementation of a thirdstate of the live search results view GUI of FIG. 3A relative to FIG. 3Bfor real-time shared browsing among social network contacts according toan embodiment of the present subject matter;

FIG. 3D is a depiction of an example of an implementation of a fourthstate of the live search results view GUI of FIG. 3A relative to FIG. 3Cfor real-time shared web browsing among social network contactsaccording to an embodiment of the present subject matter;

FIG. 4 is a flow chart of an example of an implementation of a processfor real-time shared web browsing among social network contactsaccording to an embodiment of the present subject matter;

FIG. 5A is a flow chart of an example of an implementation of initialprocessing within a process for real-time shared web browsing amongsocial network contacts that correlates initial web searches by socialnetwork contacts and that processes subsequent browsing activities bythe social network contacts within a temporary social navigationsub-network according to an embodiment of the present subject matter;and

FIG. 5B is a flow chart of an example of an implementation of additionalprocessing within a process for real-time shared web browsing amongsocial network contacts that correlates initial web searches by socialnetwork contacts and that processes subsequent browsing activities bythe social network contacts within a temporary social navigationsub-network according to an embodiment of the present subject matter.

DETAILED DESCRIPTION

The examples set forth below represent the necessary information toenable those skilled in the art to practice the invention and illustratethe best mode of practicing the invention. Upon reading the followingdescription in light of the accompanying drawing figures, those skilledin the art will understand the concepts of the invention and willrecognize applications of these concepts not particularly addressedherein. It should be understood that these concepts and applicationsfall within the scope of the disclosure and the accompanying claims.

The subject matter described herein provides real-time shared webbrowsing among social network contacts. The present technology operatesto detect a social messaging interaction between social network contactsand to determine that multiple social network contacts involved in thesocial messaging interaction each initiate separate web searchactivities. Web search results returned to each individual socialnetwork contact are captured and collectively provided to each of therespective social network contacts within a combined “live” searchresults view. The combined live search results view may be updated asthe respective social network contacts navigate through search resultsor perform additional searches, and other social network contacts mayselect navigated search results of other social network contacts in realtime to arrive at the same web page that the originating social networkcontact is currently viewing. As such, browsing activities may be sharedamong social network contacts in real time, and other social networkusers may benefit from the searches performed by other social networkcontacts. Information exchange among social network contacts may beimproved by use of the present technology.

The combined “live” search results view may be configured within aseparate content partition for each social network contact. Therespective browsing and search activities of each social network contactmay be updated within the respective content partition. To identify anddistinguish user associations with the respective content partitions, anonline-posted photograph of each of the respective social networkcontacts may be rendered within the respective content partitions tofurther enhance social information exchange. Additionally oralternatively, a user moniker (e.g., a user identifier (ID), one or moretags, an avatar, a nickname, or other user-identifying attribute) may beused to identify and distinguish social network contacts that areassociated with the respective content partitions. As such, socialnetwork contacts may easily recognize which of their respective socialnetwork contacts with which they are navigating in real time.

Additionally, when a hypertext link is selected by any of the socialnetwork contacts, a browsing summary of information content associatedwith a web page accessed by the selected hypertext link may be generatedto transform the accessed data (web page content) into a form morereadily and compactly viewed by other social network contacts. Thebrowsing summary may include a summarized hypertext link that representsthe captured portion of the information content associated with the webpage accessed by the selected hypertext link. The summarized hypertextlink may be formulated with a text representation that is different fromthe text representation within the original search results to furtherdescribe in summary form the accessed content so that other users mayrapidly determine whether they have interest in navigating to therespective search result with their colleague/contact. The contentsummary may further include a text content summary that describes thecaptured portion of the information content associated with the web pageaccessed by the selected hypertext link.

The combined live search results view may be updated with the generatedbrowsing summary. Any of the other social network contacts may view thesummary to determine whether they would like to navigate to the same webpage with their colleague/contact, and may select the providedsummarized hypertext link to navigate directly to the web page to whichthe original social network contact has navigated and is currentlyviewing. As such, the present technology further improves sharednavigation efficiency by summarizing the content of websites accessed byother social network contacts in real time without requiring othersocial network contacts to access the respective websites to see if thewebsites are of interest.

It should be noted that invocation of the present technology may occurin association with users logging into any linked services. For example,a user may log into an online social network (OSN) and may be providedwith access to other linked services (e.g., an online email service,etc.) through one or more linked service providers. Alternatively, theuser may log into an online email account provided by an online emailaccount provider and be provided with access to other linked services(e.g., one or more OSNs) through one or more linked service providers.Through these linked services, the user may have access to friends(e.g., social network contacts) who are currently active within a socialenvironment irrespective of their starting point within a socialnetworking interaction, such as the provided OSN, the provided emailaccount system, or other form of hosted interactive online environment.The user may further perform a web-based search for information via anonline search engine to search for content. The content may or may notbe associated with an email interaction/message received by the user.

In response to the web-based search, the search results may be presentedto the user in one of a number of multiple-contact search resultsformats. As a first example multiple-contact search results format, theuser's search results may be presented to the user on a single searchpage that is enhanced to show not only the user's own search results,but additionally online search activities associated with one or morefriends (social network contacts) within the user's social network. Thisexample format is described herein as the “live” search results view. Asanother example multiple-contact search results format, the user'ssearch results may be presented to the user on a multiple-tabbed searchpage that is enhanced to show not only the user's own search results,but additionally online search activities associated with one or morefriends in the user's social network partitioned onto the differenttabbed search pages. It should be noted that other multiple-contactsearch results formats for rendering of multiple sets of search resultsof multiple social network contacts within a social network are possibleand all such possibilities are considered within the scope of thepresent technology.

Regarding configuration options for rendering of multiple-contact searchresults, a numeric limit or friend preference may be configured asindicated by the user to control a quantity of social networkannotations and correlations of search results. The presentation of thesearch results may be annotated in a variety of manners.

As a first example annotation, the user's friends that have postedonline photographs within the OSN may have those pictures rendered nextto their respective partition of search results to highlight whichspecific friend is on the respective website. As another exampleannotation, a friend count/quantity indicator may be provided to theuser that indicates a number of friends that have their search resultsrendered within the multiple-contact search results formats or that areon a particular website. As a third example annotation, a user may grouptheir friends into specific “online navigation social circles” or“online navigation groups.” Such groupings may be marked and the markingmay appear next to a web site to indicate which groups in the user'ssocial network are on a particular website. As a fourth exampleannotation, the user may see these annotations presented based on anactive browsing metric.

Further, “temporal animations” that represent time-based characteristicsassociated with web search results of other social network contacts maybe configured and utilized to inform the user of the age of particularsearch results of other social network contacts that are representedwithin multiple-contact search results. For example, a size-basedtemporal animation may be configured to adjust/change a size of arendered photograph size of a contact or other user moniker from aconfigured maximum size to a configured minimum size based upon anelapsed time from a time the search results were viewed by therespective contact. Multiple predetermined and configured times may beprovided for incremental and/or fluid size adjustment of a photograph orother user moniker over time. In such an implementation, where aparticular contact is currently viewing search results provided withinthe multiple-contact search results, the respective contact's photographmay be rendered at the configured maximum size initially, which may beselected to be any suitable size appropriate for a given implementation(e.g., based upon screen size, number of multiple-contact search resultsto render relative to display size, etc.), and may be decreased in sizeto the configured minimum size over time to representnon-contemporaneous search results.

As another example temporal animation, a resolution-based temporalanimation may be configured to adjust a resolution or clarity of arendered photograph of a contact by fading the photograph over time tofurther inform the user of the age of particular search results of othersocial network contacts that are represented within multiple-contactsearch results. Multiple predetermined and configured times may beprovided for incremental and/or fluid fading/resolution adjustment of aphotograph over time. In such an implementation, where a particularcontact is currently viewing search results provided within themultiple-contact search results, the respective contact's photograph maybe rendered at the configured maximum resolution/clarity initially,which may be selected to be any suitable resolution appropriate for agiven implementation (e.g., based upon screen resolution, size of therendered photograph relative to display size, etc.), and may bedecreased in resolution/clarity to the configured minimum resolution orclarity over time to represent non-contemporaneous search results.

It should be noted that temporal animations may be combined orindependently applied as appropriate for a given implementation. Assuch, the example resolution-based temporal animation may be applied inaddition to or independently of size-based temporal animations. Itshould be noted that other temporal animations may be configured torepresent time-based aging of search results for multiple-contact searchresults, and any such animations are considered within the scope of thepresent technology.

As described above, preliminary search results may be provided inassociation with each user as a first stage of rendering within the livesearch results view. Once any user begins navigating within theirrespective search results, a summary of the content accessed by therespective user's selection of a hypertext link within the user's searchresults may be generated and provided to the other users (social networkcontacts) as a second stage of rendering. This transformation of theaccessed data to create the content summary provides a compactrepresentation of the content accessed by the other user. Social networkcontacts that view the summary may determine that they are interested inviewing the content that is accessed by the other social networkcontacts based upon the transformed data represented within thegenerated content summary.

Any user that is viewing the content summary may navigate to the samepage that was accessed by the other social network user (as representedby the content summary) by selecting (e.g., clicking on) an annotatedsocial network indicator (e.g., the photo of the other contact). Theuser may then be taken within their respective partition of the livesearch results view to the website previously navigated to by the user'ssocial network contact and may be directed to the exact page or sub-pageof the respective website that their friend is currently or haspreviously visited. As such, users may be provided with an overview ofnavigation activities of their friends and colleagues, and mayselectively navigate with any of their friends based upon the user'sinterests in the content found by the web-based searches of theirfriends.

Additionally, once the user's partition of the live search results viewhas navigated to the respective website previously navigated by theirfriend, annotated breadcrumbs may be provided within the content of theaccessed website to show further navigation activities by the socialnetwork contact that previously navigated the web site. The annotatedbreadcrumbs may include a time-stamp, highlighting, footstep trail(e.g., where a user has navigated), or other indicator of where theirfriend has clicked or is currently surfing within the website.

It should be noted that the other social network contact's respectivepanel/partition within the live search results view may also be updatedwith a new content summary to reflect this additional navigation.Alternatively, higher-level resolution of navigation may be maintainedwithin the live search results view and the generated content summariesto maintain additional clarity of higher-level search activities. Theseoptions may be considered configurable and may be implemented with agranularity appropriate for a given implementation.

It should further be noted that the present technology may be used toautomatically form temporary social navigation networks that dynamicallyrepresent navigation circles of social network contacts, within whichthe social network contacts co-browse content. For example, in asituation as described above where a primary user/contact navigates to asearch result and a friend or multiple friends also navigate along withthe primary user based upon the generated content summary, therespective social network contacts may be configured into an ad hocsocial navigation sub-network (e.g., a temporary social navigationsub-network). In response to such a configuration as a socialsub-network, the live search results view of the respective socialnetwork contacts may be modified to only show the search results andnavigation activities of the respective users configured within thesocial sub-network. Such a modification may reduce screen spaceoccupancy by search results of other users that are not part of thesocial sub-network.

As a configuration option, the live search results view of other usersthat are not a part of the social sub-network may have the browsingactivities of the social sub-network removed from their view of othersocial network contacts' search results, or the social sub-network userpartitions may continue to be provided to non-social sub-network users.In the latter case, an annotation may be provided in association witheach user/contact that is a part of the social sub-network so that otherusers know which users are within and a part of the social sub-network.

Additionally, where a user that is not a current member of an ad hocsocial navigation sub-network selects an annotation of one of the socialsub-network users, the new user may navigate into the search results ofthe social sub-network and may be added dynamically to the socialsub-network. Again, as a configuration option, the new user may have itsrendering of the live search results reduced to include only searchpartitions of the users within the social sub-network or may continue toview navigation activities of other users that are not a part of the adhoc social navigation sub-network.

Additionally, the previous social sub-network users may have their livesearch results view updated to include a partition for the new socialsub-network user(s) (if their view was previously configured to modifythe live search results view to remove other users). Alternatively, ifthe previous social sub-network users have their live search resultsview configured to still show other users, an annotation may be added tothe search partition of the other/new users to note the other/new socialsub-network user has been added to and is a part of the ad hoc socialnavigation sub-network.

As another configuration option for dynamic creation of socialsub-networks, users may allow spontaneous/automated formation of dynamicad hoc social navigation sub-networks based upon shared interests.Within such an implementation, uniform resource locator (URL) referencesmay be utilized to identify users that are interested in the same orsimilar topics. In response to identification of users that havenavigated to the same URL, the present technology may be configured bythe users to allow social sub-network formation granularity based uponURL components. For example, where a movie information website hassub-pages associated with different movies (e.g., “http:/ . . ./funny_movie” and “http:/ . . . . /scary_movie”), users that accessindividual movie sub-pages may, where configured by the respective usersto allow dynamic information-based ad hoc social navigation sub-networkcreation, be configured into a dynamic ad hoc social navigationsub-network to share information and ideas (and further shared searchresult navigation) with one another.

As such, dynamic ad hoc social navigation sub-networking may be providedto users to allow efficient group navigation of search results. Suchdynamic ad hoc social navigation sub-networking may improve efficiencyof problem resolution within engineering environments (e.g., research)and may improve problem resolution within social environments (e.g.,where to go for lunch). Many possibilities exist for improvement ofsocial information sharing and information gathering based upon thepresent technology and all such possibilities are considered within thescope of the present technology.

A navigation sharing configuration option may be implemented to allowusers to selectively control sharing of their respective active webbrowsing activity with other friends (social network contacts). Thenavigation sharing configuration option may be implemented to allowgranular sharing of web search results by search topic, time of day, orany other factor appropriate for a given implementation. For example,where a user is performing a search for banking or other confidentialweb-based inquiries, the user may configure searches associated withsuch a topic to not be shared with other social network contacts.Additionally, if the user prefers to perform hobby searches in theevenings, such activities may not be of interest to other users and theuser may configure such searches to not be shared (either by topic ortime of day) with other social network contacts.

Further, social network contacts may configure what information of otherusers they are interested in having shared with them. Where a particularsocial network contact is interested in all sports and another secondsocial network contact is only interested a single sport, the secondsocial network contact may configure navigation sharing options inassociation with the first social network contact such that only searchresults of the single sport of interest to the second social networkcontact result in updates and information within the second user's livesearch results view. Time-based and other configuration options forreceipt of search results of other social network contacts may also beimplemented to allow users to configure what types of informationsearches of others are retrieved.

The navigation sharing options may be configured within an enhanced viewor a modified user interface may be presented to the user that wouldallow the user to selectively apply the navigation sharing options.Alternatively, the user may right click on the respective partitions orannotations of the individual users and may be presented with a pop-updialog or menu to selectively apply the navigation sharing options. Theuser may further select within their individual browser a navigationsharing option to invoke the live search results view (e.g., “share withfriends”). Many other possibilities for invocation and configuration ofthe navigation sharing options may be implemented and all suchpossibilities are considered within the scope of the present subjectmatter.

As such, any granularity of sharing of web search results may beselectively configured by the user to allow the user autonomous andthorough control of sharing of their search results and retrieval of thesearch results of other users. Accordingly, user privacy of informationmay be maintained, while allowing enhanced social information sharingwhere appropriate for the respective user(s). Additionally, users maycontrol what information searches of others are provided for review andnavigation based upon common interests and other factors as appropriatefor a given user or implementation.

As another configuration option, users may configure a socialweb-browsing activity log to be created to capture their searchactivities and their friends' activities. The configured socialweb-browsing activity log may be passed on to other friends to furthershare the combined information search results.

A user may further select a differential search results viewing optionto see a differential view between their active browsing activity andtheir friend's browsing activity. As such, where one or more usersdiverge in their search results, users may benefit from the divergenceand gain additional information that results from such a divergencewithin a nested browsing history without having to re-perform multiplestages of web searching to arrive at the divergence point of the twosearches.

It should further be noted that the present technology may beimplemented across multiple partnered websites or services. As such, theindividual users are not required to perform their respective websearches using the same application or service.

As an additional consideration, while the present examples utilizesearch results and the sharing of search results, the present technologymay be implemented in association with other information access orretrieval. For example, users may use the present technology to sharecontent housed in forms, records, service catalogs, databases, or anyother information store/format, as appropriate for a givenimplementation, where multiple parties have an interest in data that ismachine searchable. Regarding sharable content housed in forms, examplesmay include resume-profiled or job-profiled information, where atemporal recruiter social network is formed to co-browse/navigatethrough potential candidates. Regarding sharable content housed inrecords, an example may include electronic medical records (EMRs), wherea temporal medical social network is formed to co-browse/navigatethrough patient histories. Regarding sharable content housed in servicecatalogs, examples may include products and/or services where aproducer-consumer network is formed between business managers thatdetermine the services and end-users that request the product/service inorder to co-browse through the service data (e.g., service levelagreements (SLAs), service availability, cost, etc.). Regardingdatabases, examples may include cloud databases where a programmerdeveloper network is formed to develop or maintain a shared applicationand/or product.

Regarding implementation options, the present technology may, forexample, be implemented as a plugin associated with another application.Alternatively, the present technology may be integrated into a searchengine itself using configuration meta-data, or may be implemented as athird party service. As such, many possibilities exist forimplementation of the present technology and all such possibilities areconsidered to be within the scope of the present subject matter.

The present technology is applicable to many forms of social networkinginteractions (e.g., messaging interactions). For example, socialnetworking interactions such as chat session messaging interactions,instant messaging interactions, email messaging interactions, socialnetwork messaging interactions, and other forms of electroniccommunications may all be configured for the formation and utilizationof real-time shared web browsing among social network contacts.

It should be noted that conception of the present subject matterresulted from recognition of certain limitations associated with socialnetworking interactions. For example, it was observed that while onlinesocial networks (OSNs) provide a mechanism for users (social networkcontacts) to log in and connect with other people and to shareinformation between the members, there is not currently a mechanism toallow people to see what web pages their friends may concurrently bebrowsing with a web browser (outside of the social networkingapplication). In view of this observation, the present technology allowsOSN participants to be able to see search engine results that areenhanced to show their respective social network contact's web browsingactivities. The present subject matter improves social networkinginteraction by providing real-time shared web browsing among socialnetwork contacts, as described above and in more detail below. As such,improved social networking and research interaction may be obtainedthrough use of the present technology.

The real-time shared web browsing among social network contactsdescribed herein may be performed in real time to allow prompt (e.g.,active) sharing of browsing activities among social network contacts.For purposes of the present description, real time shall include anytime frame of sufficiently short duration as to provide reasonableresponse time for information processing acceptable to a user of thesubject matter described. Additionally, the term “real time” shallinclude what is commonly termed “near real time”-generally meaning anytime frame of sufficiently short duration as to provide reasonableresponse time for on-demand information processing acceptable to a userof the subject matter described (e.g., within a portion of a second orwithin a few seconds). These terms, while difficult to precisely defineare well understood by those skilled in the art.

FIG. 1 is a block diagram of an example of an implementation of a system100 for real-time shared web browsing among social network contacts. Acomputing device_(—)1 102 through a computing device_N 104 communicatevia a network 106 with each other and with a server_(—)1 108 through aserver_M 110.

As will be described in more detail below in association with FIG. 2through FIG. 9, the computing device_(—)1 102 through the computingdevice_N 104 and the server_(—)1 108 through the server_M 110 may eachprovide automated real-time shared web browsing among social networkcontacts. The real-time shared web browsing among social networkcontacts is based upon identifying and sharing individual search resultsobtained by users of the computing device_(—)1 102 through the computingdevice_N 104 (e.g., in response to searches performed using one or moreof the server_(—)1 108 through the server_M 110), and correlation of theseparate search results into a combined live search result view. Thepresent technology may be implemented at a user computing device orserver device level, or at a combination of the two forms of devices, asappropriate for a given implementation. A variety of possibilities existfor implementation of the present subject matter, and all suchpossibilities are considered within the scope of the present subjectmatter.

It should be noted that any of the respective computing devicesdescribed in association with FIG. 1 may be portable computing devices,either by a user's ability to move the respective computing devices todifferent locations, or by the respective computing device's associationwith a portable platform, such as a plane, train, automobile, or othermoving vehicle. It should also be noted that the respective computingdevices may be any computing devices capable of processing informationas described above and in more detail below. For example, the respectivecomputing devices may include devices such as a personal computer (e.g.,desktop, laptop, etc.) or a handheld device (e.g., cellular telephone,personal digital assistant (PDA), email device, music recording orplayback device, tablet computing device, e-book reading device, etc.),a web server, application server, or other data server device, or anyother device capable of processing information as described above and inmore detail below.

The network 106 may include any form of interconnection suitable for theintended purpose, including a private or public network such as anintranet or the Internet, respectively, direct inter-moduleinterconnection, dial-up, wireless, or any other interconnectionmechanism capable of interconnecting the respective devices.

The server_(—)1 108 through the server_M 110 may include any devicecapable of providing data for consumption by a device, such as thecomputing device_(—)1 102 through the computing device_N 104, via anetwork, such as the network 106. As such, the server_(—)1 108 throughthe server_M 110 may each include a web server, application server, anemail or other messaging server, a social networking server, or otherdata server device.

FIG. 2 is a block diagram of an example of an implementation of a coreprocessing module 200 capable of performing real-time shared webbrowsing among social network contacts. The core processing module 200may be associated with either the computing device_(—)1 102 through thecomputing device_N 104 or with the server_(—)1 108 through the server_M110, as appropriate for a given implementation. Further, the processingperformed by the core processing module 200 may be partitioned andassociated with a computing device in combination with a server device.As such, the core processing module 200 is described generally herein,though it is understood that many variations on implementation of thecomponents within the core processing module 200 are possible and allsuch variations are within the scope of the present subject matter.

Further, the core processing module 200 may provide different andcomplementary processing of shared search results in association witheach implementation. As such, for any of the examples below, it isunderstood that any aspect of functionality described with respect toany one device that is described in conjunction with another device(e.g., sends/sending, etc.) is to be understood to concurrently describethe functionality of the other respective device (e.g.,receives/receiving, etc.).

A central processing unit (CPU) 202 provides computer instructionexecution, computation, and other capabilities within the coreprocessing module 200. A display 204 provides visual information to auser of the core processing module 200 and an input device 206 providesinput capabilities for the user.

The display 204 may include any display device, such as a cathode raytube (CRT), liquid crystal display (LCD), light emitting diode (LED),electronic ink displays, projection, touchscreen, or other displayelement or panel. The input device 206 may include a computer keyboard,a keypad, a mouse, a pen, a joystick, touchscreen, or any other type ofinput device by which the user may interact with and respond toinformation on the display 204.

A communication module 208 provides interconnection capabilities thatallow the core processing module 200 to communicate with other moduleswithin the system 100. The communication module 208 may include anyelectrical, protocol, and protocol conversion capabilities useable toprovide interconnection capabilities, appropriate for a givenimplementation.

For purposes of the present description, each of the display 204 and thecommunication module 208 may be considered an “output module.” As such,for a server-based implementation, either or both of the display 204 andthe communication module 208 may be used to provide/output renderablecontent. Similarly, for a client device-based implementation, either orboth of the display 204 and the communication module 208 may be used toprovide/output renderable content.

A memory 210 includes a search results storage area 212 that stores oneor more sets of search results within the core processing module 200.The search results storage area 212 may store searches for multiplesocial network contacts in association with processing as describedherein.

The memory 210 also includes a shared search results processing area214. The shared search results processing area 214 provides storagespace for correlation and processing of multiple sets of search resultsas described herein.

It is understood that the memory 210 may include any combination ofvolatile and non-volatile memory suitable for the intended purpose,distributed or localized as appropriate, and may include other memorysegments not illustrated within the present example for ease ofillustration purposes. For example, the memory 210 may include a codestorage area, an operating system storage area, a code execution area,and a data area without departure from the scope of the present subjectmatter.

A shared search results processing module 216 is also illustrated. Theshared search results processing module 216 provides compilation,correlation, and other processing of search results sets within the coreprocessing module 200, as described above and in more detail below. Theshared search results processing module 216 implements the automatedreal-time shared web browsing among social network contacts of the coreprocessing module 200.

It should also be noted that the shared search results processing module216 may form a portion of other circuitry described without departurefrom the scope of the present subject matter. Further, the shared searchresults processing module 216 may alternatively be implemented as anapplication stored within the memory 210. In such an implementation, theshared search results processing module 216 may include instructionsexecuted by the CPU 202 for performing the functionality describedherein. The CPU 202 may execute these instructions to provide theprocessing capabilities described above and in more detail below for thecore processing module 200. The shared search results processing module216 may form a portion of an interrupt service routine (ISR), a portionof an operating system, a portion of a browser application, or a portionof a separate application without departure from the scope of thepresent subject matter.

A timer/clock module 218 is illustrated and used to determine timing anddate information, such as for use in aging annotations associated withsocial network contacts, as described above and in more detail below. Assuch, the shared search results processing module 216 may utilizeinformation derived from the timer/clock module 218 for informationprocessing activities, such as the real-time shared web browsing amongsocial network contacts.

The CPU 202, the display 204, the input device 206, the communicationmodule 208, the memory 210, the shared search results processing module216, and the timer/clock module 218 are interconnected via aninterconnection 220. The interconnection 220 may include a system bus, anetwork, or any other interconnection capable of providing therespective components with suitable interconnection for the respectivepurpose.

Though the different modules illustrated within FIG. 2 are illustratedas component-level modules for ease of illustration and descriptionpurposes, it should be noted that these modules may include anyhardware, programmed processor(s), and memory used to carry out thefunctions of the respective modules as described above and in moredetail below. For example, the modules may include additional controllercircuitry in the form of application specific integrated circuits(ASICs), processors, antennas, and/or discrete integrated circuits andcomponents for performing communication and electrical controlactivities associated with the respective modules. Additionally, themodules may include interrupt-level, stack-level, and application-levelmodules as appropriate. Furthermore, the modules may include any memorycomponents used for storage, execution, and data processing forperforming processing activities associated with the respective modules.The modules may also form a portion of other circuitry described or maybe combined without departure from the scope of the present subjectmatter.

Additionally, while the core processing module 200 is illustrated withand has certain components described, other modules and components maybe associated with the core processing module 200 without departure fromthe scope of the present subject matter. Additionally, it should benoted that, while the core processing module 200 is described as asingle device for ease of illustration purposes, the components withinthe core processing module 200 may be co-located or distributed andinterconnected via a network without departure from the scope of thepresent subject matter. For a distributed arrangement, the display 204and the input device 206 may be located at a point of sale device,kiosk, or other location, while the CPU 202 and memory 210 may belocated at a local or remote server. Many other possible arrangementsfor components of the core processing module 200 are possible and allare considered within the scope of the present subject matter.Accordingly, the core processing module 200 may take many forms and maybe associated with many platforms.

FIG. 3A through FIG. 3D described below represent example graphical userinterface (GUI) implementations that represent data transformations ofsearch results and navigation activities of friends (social networkcontacts) for real-time shared web browsing among social networkcontacts. Many other variations on the example GUI representations arepossible and all are considered within the scope of the present subjectmatter.

FIG. 3A is a depiction of an example of an implementation of an initialstate of a live search results view GUI 300 for real-time shared webbrowsing among social network contacts. For purposes of the presentexample, it is assumed that a group of social network contacts has beencommunicating, such as through an instant messaging or email system(e.g., as implemented via one or more of the server_(—)1 108 through theserver_M 110) about a movie, and that the users each individually havebegun performing a web search for information related to a particularmovie of interest. It is further assumed for purposes of the presentexample, that each user has received search results and that the searchresults have been initially rendered within respective independent webbrowsers of computing devices utilized by the respective users.

Regarding the initial state of the live search results view GUI 300, inresponse to determining that the social network contacts have each beensearching for results associated with the same/similar topic (e.g., themovie about which they are communicating via instant messaging), an adhoc social navigation sub-network is represented to have been formedthat includes the social network contacts. It is understood thatdifferent individuals may perform different searches, such as for movieshow times, movie reviews, movie trailers, or other searches. Thepresent technology may detect such variations for searches of similarcontent related to the same topic (e.g., the movie) and may form an adhoc social navigation sub-network using factors as appropriate for agiven implementation and configuration.

Additionally, the live search results view GUI 300 is illustrated tohave been created and rendered for each of the social network contactswithin the ad hoc social navigation sub-network to show the individualsearch results returned to each of the social network contacts to allsocial network contacts within the ad hoc social navigation sub-network.It is further noted that while one formatted representation of the livesearch results view GUI 300 is presented for purposes of example (e.g.,partitions of a single browser window, as described below), many othervariations on the live search results view GUI 300 are possible. Forexample, rather than using partitions within a single browser window,multiple tabbed browser windows within a single browser executable maybe used, or any other form of partitioning may be used, as appropriatefor a given implementation. As such, any and all such variations areconsidered to be within the scope of the present technology.

As can be seen from FIG. 3A, a live-browsing partition 302, alive-browsing partition 304, and a live-browsing partition 306 are shownto have been created for a social contact 308, a social contact 310, anda social contact 312, respectively. The live-browsing partition 302includes search results of the social contact 308 (listed as “searchresult 302-1,” “search result 302-2,” and “search result 302-3,” etc. asnoted by the ellipsis dots). Similarly, the live-browsing partition 304includes search results of the social contact 310 (listed as “searchresult 304-1,” “search result 304-2,” and “search result 304-3,” etc.).The live-browsing partition 306 also includes search results of thesocial contact 312 (listed as “search result 306-1,” “search result306-2,” and “search result 306-3,” etc.).

It should further be noted that a photograph of each of the socialnetwork contacts 308 through 312 has been rendered within a respectivepartition of a live social browsing bar 314 within the live searchresults view GUI 300. The live social browsing bar 314 and thephotographs of the respective social network contacts may assist userswith recognition of which social network contacts are within the ad hocsocial navigation sub-network and associated with the respectivelive-browsing partitions 302 through 306. For purposes of the presentdescription, the photographs are considered “annotations” that, asdescribed above and in more detail below, may selected (e.g., via amouse/cursor) by users to invoke advanced-stage processing within thelive search results view GUI 300. These annotations may be animated asdescribed above (e.g., size changes, resolution changes, etc.) torepresent aging of individual sets of search results or otherinformation as appropriate for a given implementation.

The initial state of the live search results view GUI 300 may beprovided to each user/contact. It should be noted that variations in therendering of the live search results view GUI 300 may be provided toeach user over time based upon the respective additional searching orbrowsing activities (e.g., selection of one or more search results) ofthe user, and selection of hypertext links associated with items ofcontent rendered in association with sub-pages accessed by the searchresults. Additionally, variations in the rendering of the live searchresults view GUI 300 may be provided to each user over time based uponthe respective additional searching or browsing activities of otherusers in the ad hoc social navigation sub-network.

As an additional note, other social network contacts of users within thead hoc social navigation sub-network may be provided with access to thelive search results view GUI 300 and may join the ad hoc socialnavigation sub-network, as configured by users or administrators of thepresent technology. As such, other social network contacts may benefitfrom research performed by their colleagues and social network contacts,and the other social network contacts may further the research to thebenefit of original members of the ad hoc social navigation sub-network.

For purposes of the remainder of the example implementation of the livesearch results view GUI 300 represented within FIGS. 3B through 3Dbelow, it is assumed that variations of the rendering of the live searchresults view GUI 300 are illustrated from the perspective of the livesearch results view GUI 300 as rendered to the social contact 312 (e.g.,the bottom social contact associated with the live-browsing partition306 within the live social browsing bar 314). It is understood thatalternative variations of the live search results view GUI 300 may beprovided to each other social contact based upon the activities of therespective social contact and based upon activities of other socialnetwork contacts within the ad hoc social navigation sub-network. Thepresent example continues within FIG. 3B.

FIG. 3B is a depiction of an example of an implementation of a secondstate of the live search results view GUI 300 of FIG. 3A for real-timeshared web browsing among social network contacts. As can be seen fromFIG. 3B, content within the live-browsing partition 302 has been changedfrom the initial state illustrated in FIG. 3A. Again, it is understoodthat this illustration of the live search results view GUI 300 is fromthe perspective of the user associated with the social contact 312(e.g., the bottom social contact associated with the live-browsingpartition 306 within the live social browsing bar 314).

With this perspective in mind, the illustration of the example livesearch results view GUI 300 within FIG. 3B represents additionalbrowsing activities by the social contact 308 associated with thelive-browsing partition 302. For purposes of the present example, it isassumed that the social contact 308 selected one of the search results(e.g., a hypertext link) represented within FIG. 3A within thelive-browsing partition 302, and navigated to the respective website/page accessed by the hypertext link, and is currently viewingcontent on that web site (potentially including additional browsing andhypertext link selections).

The present technology operates to transform the data accessed by thesocial contact 308 on the web site into a content summary of thefriend's live browsing activities. The content summary of the friend'slive browsing activities allows other social network contacts, such asthe social contact 310 and the social contact 312, to determine whetherthey are interested in also navigating to the same site to surf the webcontemporaneously with their friend/colleague to navigate to websitesand view the same content.

The present technology may operate by accessing the respective website(as accessed by the social contact 308), capturing at least a portion ofinformation content associated with a web page accessed by the selectedhypertext link, and generating the content summary of the capturedportion of the information content associated with the web page accessedby the selected hypertext link. The combined live search results viewrepresented by the live search results view GUI 300 is updated for eachof the respective other social network contacts within the ad hoc socialnavigation sub-network with the generated content summary of thecaptured portion(s) of the information content associated with the webpage accessed by the selected hypertext link.

Within the present example, the generated and rendered content summaryof the friend's live browsing activities includes a summarized hypertextlink that is shown to have been created based upon the captured web sitecontent. As can be seen from FIG. 3B, the summarized hypertext linkdescribes the content of the accessed site, and describes the content tobe found on that web site as, in this example, “Movie Theater Link” 316.

The generated and rendered content summary of the friend's live browsingactivities also includes a text content summary 318 that furtherdescribes content that may be accessed on the respective web site if thesocial contact 312 (or the social contact 310) is interested innavigating to the respective web site. It is understood that the examplesecond state of processing of the live search results view GUI 300 maybe rendered in identical form of the social contact 310 because no othersocial browsing activity has occurred at this stage of the presentexample.

It should further be noted that where a social contact performsadditional browsing and hypertext link selections after initiallynavigating to a web site (and after initial generation of a contentsummary), additional content summaries may be generated for each suchnavigation. Alternatively, as described above and in more detail below,to reduce confusion among social network contacts, a single contentsummary is utilized within the present example. In such animplementation, “breadcrumbs” may be used instead of (or in addition to)generating new content summaries to allow more stability in associationwith higher-level content summaries, while allowing users that actuallynavigate along with their friends to identify additional navigationactivities of other friends. This variation for the use of breadcrumbsis illustrated and described in association with FIG. 3D below, in favorof additional description of intermediate processing of the presentexample beginning with FIG. 3C.

FIG. 3C is a depiction of an example of an implementation of a thirdstate of the live search results view GUI 300 of FIG. 3A relative toFIG. 3B for real-time shared browsing among social network contacts. Ascan be seen from FIG. 3C, content within the live-browsing partition 304and content within the live-browsing partition 306 have both beenchanged from the second state illustrated in FIG. 3B. Again, it isunderstood that this illustration of the live search results view GUI300 is from the perspective of the user associated with the socialcontact 312 (e.g., the bottom social contact associated with thelive-browsing partition 306 within the live social browsing bar 314).

With this perspective in mind, the illustration of the example livesearch results view GUI 300 within FIG. 3C represents additionalbrowsing activities by each of the social contact 310 and the socialcontact 312 associated with the live-browsing partitions 304 and 306,respectively. For purposes of the present example, it is assumed thateach of the social contact 310 and the social contact 312 have alsoselected one of the search results (e.g., a hypertext link) representedwithin FIG. 3B within the live-browsing partition 304 and within FIG. 3Cwithin the live-browsing partition 306, respectively. In response toeach selection by the respective social network contacts, the respectivesocial contact is navigated to the respective web site/page accessed bythe respective hypertext link, and is currently viewing content on thatweb site within their respective partitions and within their respectiverenderings of the live search results view GUI 300.

With respect to the navigation activities of the social contact 310, asdescribed above, the present technology operates to transform the dataaccessed by the social contact 310 on the web site into a contentsummary of the friend's live browsing activities. The content summary ofthe friend's live browsing activities allows other social networkcontacts, such as the social contact 308 and the social contact 312within this state of the example, to determine whether they areinterested in also navigating to the same site to surf the webcontemporaneously with their friend/colleague to navigate to websitesand view the same content.

Again, the present technology may operate by accessing the respectivewebsite (as accessed by the social contact 310), capturing at least aportion of information content associated with a web page accessed bythe selected hypertext link, and generating the content summary ofcaptured portion of the information content associated with the web pageaccessed by the selected hypertext link. Within the present example, thegenerated and rendered content summary of the friend's live browsingactivities includes a summarized hypertext link that is shown to havebeen created based upon the captured web site content. As can be seenfrom FIG. 3C, the summarized hypertext link describes the content of theaccessed site, and describes the content to be found on that web siteas, in this example, “Movie Review Link” 320. The generated and renderedcontent summary of the friend's live browsing activities also includes atext content summary 322 that further describes content that may beaccessed on the respective web site if the social contact 312 (or thesocial contact 308) is interested in navigating to the respective website.

With respect to the navigation activities of the social contact 312,because the perspective of the live search results view GUI 300 is fromthe perspective of the social contact 312, actual web content 324 thatis accessed when the social contact 312 selects one of the searchresults within the live-browsing partition 306 is rendered for thisparticular social contact. It is understood that a content summary mayalso be generated and rendered to the other social network contacts 308and 310 within their respective views of the live search results viewGUI 300 that describes the browsing activities of the social contact312.

It should additionally be noted, that for purposes of the presentexample, it is assumed that the social contact 312 is interested innavigating along with the social contact 308. The present technologyfurther provides contemporaneous live social browsing by allowing usersto select navigations traversed by their friends/colleagues. Within thepresent example, the social contact 312 is assumed to have directed aninput device (e.g., a mouse) to place a cursor 326 over theannotation/photograph of the social contact 308. The social contact 312is further assumed to initiate a select operation with the input device(e.g., left click) to invoke contemporaneous live social browsing withthe social contact 308. A next state of the present example isillustrated and described below in association with FIG. 3D.

It should be noted that, while the present example utilizes selection ofan annotation associated with a social contact to invoke contemporaneouslive social browsing, other forms of contemporaneous live socialbrowsing invocation are possible. For example, the social contact 312may alternatively select the Movie Theater Link 316 or any portion ofthe text content summary 318 (e.g., any section of the live-browsingpartition 302 or the partition of the live social browsing bar 314associated with the social contact 308) to invoke contemporaneous livesocial browsing. However, it should be noted that it may be intuitivefrom a human-factors design perspective to configure an implementationwithin the live search results view GUI 300 to respond to selections ofsocial contact annotations as at least one option to invokecontemporaneous live social browsing.

It is assumed for purposes of the present state of the present examplethat the social contact 312 selected the annotation of the socialcontact 308 using the input device, and that a subsequent state of thelive search results view GUI 300 is depicted within FIG. 3D. The presentexample continues within FIG. 3D.

FIG. 3D is a depiction of an example of an implementation of a fourthstate of the live search results view GUI 300 of FIG. 3A relative toFIG. 3C for real-time shared web browsing among social network contacts.As can be seen from FIG. 3D, in response to selection of the annotationof the social contact 308 by the social contact 312, content within thelive-browsing partition 306 has been changed from the state illustratedin FIG. 3C. Again, it is understood that this illustration of the livesearch results view GUI 300 is from the perspective of the userassociated with the social contact 312 (e.g., the bottom social contactassociated with the live-browsing partition 306 within the live socialbrowsing bar 314).

With this perspective in mind, the illustration of the example livesearch results view GUI 300 within FIG. 3D represents a contemporaneousnavigation to the web site previously accessed by the social contact308. As such, web site content 328 of the actual web site previouslyaccessed by the social contact 308 is illustrated to have been updatedand rendered to the social contact 312 within that social contact'srespective view of the live search results view GUI 300. As can be seenfrom FIG. 3D, the accessed web site is represented as the movie theaterwebsite that has been accessed by the social contact 308, and includesshowtimes of various movies that are playing at the theater. Thiscontent is the content represented by the content summary generated inassociation with the social contact 308, as described above, that hasbeen presented to the social contact 312 within the live-browsingpartition 302.

For purposes of the present example, it is also assumed that the socialcontact 308 has selected one of the hypertext links presented to thatsocial contact on the accessed web site. The other social contact'snavigation activity is illustrated to the social contact 312 usingrendering of a “breadcrumb” 330. The breadcrumb 330 is illustratedwithin the present example as a box due to limitations of drawingpreparation. However, it is understood that the breadcrumb 330 may bepresented in any format suitable for a given implementation, such ashighlighting with text features (e.g., font, bolding, etc.),highlighting with color or characters (e.g., asterisks, etc.),highlighting with reverse video, or other form of indicator thatidentifies navigation by another social contact on a web page accessedby a friend/colleague. Using the breadcrumb 330, the social contact 312may also navigate to the content accessed using the hypertext linkhighlighted by the breadcrumb 330.

It should further be noted that the respective partitions of the livesocial browsing bar 314 associated with the social contact 308 and thesocial contact 312 have been updated to include a contemporaneousbrowsing indicator 332 and 334, respectively. While illustrated as aform of asterisk, the contemporaneous browsing indicator 332 and 334 maybe formed in any manner suitable for a given implementation, including acolor change or other indication of shared browsing activities.

Each of the respective views of the live search results view GUI 300 aspresented to the social contact 308 and the social contact 310 may alsobe updated with the contemporaneous browsing indicator 332 and 334 sothat all social network contacts within the ad hoc social navigationsub-network may be informed of shared browsing activities. Use of thecontemporaneous browsing indicator 332 and 334 may provide enhancedusability as more users are informed of shared browsing activities, andthose users may also navigate to sites that are of particular interestto friends/colleagues.

As also described above, annotations (e.g., photographs) may beanimated, such as by use of changes in size and/or resolution ofrendered annotations, to show aging of search results and/or generatedcontent summaries. For purposes of the present example, it is assumedthat the social contact 310 has not participated in the ad hoc socialnavigation sub-network for an amount of time configured to causeanimation/aging of the annotation associated with the social contact310. As such, and can be seen within FIG. 3D, the photograph/annotationrendered in association with the social contact 310 has been animatedwithin the present example by reducing the rendered size/dimensions ofthe annotated photograph relative to other rendered annotations. Thisform of annotation represents to other social network contacts withinthe ad hoc social navigation sub-network that the social contact 310 haspotentially left the ad hoc social navigation sub-network. However, forthe benefit of other users within the ad hoc social navigationsub-network, the search results of the social contact 310 may beprovided for a configurable period of time so that other users withinthe ad hoc social navigation sub-network may benefit from search resultsfound by the social contact 310. Many other variations on animations ofsocial contact annotations are possible to represent aging of or otherinformation about search results, and all such variations are consideredwithin the scope of the present technology.

It should also be noted that each of the respective views of the livesearch results view GUI 300 as presented to the social contact 308 andthe social contact 310 may also be updated with a content summary of theweb site accessed by the social contact 312 (as also accessed by thesocial contact 308). Within these respective views, the content summarymay be as illustrated in association with the live-browsing partition302 to further enhance recognition by other users of the shared browsingactivities of the social contact 308 and the social contact 312.

As such, the example live search results view GUI 300 may operate totransform data accessed by social network contacts into representationalforms that are selectable by other social network contacts to invokecontemporaneous live social browsing. Many other variations on thepresent example are possible and all such variations are considered tobe within the scope of the present technology.

As also described above, a social web-browsing activity log of the websearch and contemporaneous live social browsing activities of the socialnetwork contacts may be created and shared with other social contact tofurther improve search results sharing among friends and colleagues.Further, as also described above, the contemporaneous live socialbrowsing and sharing of search results with other social networkcontacts may be regulated by individual users or corporate entitiesusing navigation sharing configuration options.

It should also be noted that the social network contacts within the adhoc social navigation sub-network may also continue communicating usingother communication channels during the formation of the ad hoc socialnavigation sub-network, either by voice communications, text messaging,chat or instant messaging, email messaging, or otherwise. The socialnetwork contacts may share browsing activities with one another usingthe live search results view GUI 300 to expedite and improve researchefficiency. As such, improved social networking and research interactionmay be obtained through use of the present technology.

FIG. 4 through FIG. 5B described below represent example processes thatmay be executed by devices, such as the core processing module 200, toperform the automated real-time shared web browsing among social networkcontacts associated with the present subject matter. Many othervariations on the example processes are possible and all are consideredwithin the scope of the present subject matter. The example processesmay be performed by modules, such as the shared search resultsprocessing module 216 and/or executed by the CPU 202, associated withsuch devices. It should be noted that time out procedures and othererror control procedures are not illustrated within the exampleprocesses described below for ease of illustration purposes. However, itis understood that all such procedures are considered to be within thescope of the present subject matter. Further, the described processesmay be combined, sequences of the processing described may be changed,and additional processing may be added or removed without departure fromthe scope of the present subject matter.

FIG. 4 is a flow chart of an example of an implementation of a process400 for real-time shared web browsing among social network contacts. Atblock 402, the process 400 determines, via a processor, that at leasttwo social network contacts involved in a social messaging interactioneach initiate a separate web search associated with the social messaginginteraction. At block 404, the process 400 captures, in association witheach initiated separate web search, a separate set of web search resultsreturned to each of the at least two social network contacts. At block406, the process 400 provides, to each of the at least two socialnetwork contacts, a combined live search results view comprising eachcaptured separate set of web search results, where the combined livesearch results view provides navigation to web content returned to othersocial network contacts.

FIGS. 5A-5B illustrate a flow chart of an example of an implementationof process 500 for real-time shared web browsing among social networkcontacts that correlates initial web searches by social network contactsand that processes subsequent browsing activities by the social networkcontacts within a temporary social navigation sub-network. FIG. 5Aillustrates initial processing within the process 500. At decision point502, the process 500 makes a determination as to whether concurrent websearches by multiple social network contacts associated with aparticular topic have been detected. As described above, concurrent websearches by multiple social network contacts associated with aparticular topic may be detected in association with research activities(e.g., business, entertainment, etc.) performed by multiple socialnetwork contacts that are each trying to learn more about the respectivetopic. The concurrent web searches may be detected in association with asocial messaging interaction between social network contacts. The socialmessaging interaction may include a chat session messaging interaction,an instant messaging interaction, an email messaging interaction, and/ora social network messaging interaction. It should be noted that theprocess 500 may be implemented as a multi-threaded process so thatmultiple stages of processing may be performed in association withdifferent social network contacts concurrently.

In response to determining at decision point 502 that concurrent websearches by multiple social network contacts associated with aparticular topic have been detected, the process 500 forms/creates atemporary (“ad hoc”) social navigation sub-network of contemporaneouslysearching social network contacts at block 504. The temporary socialnavigation sub-network includes the social network contacts that havebeen detected to have performed the contemporaneous web searches. Atblock 506, the process 500 captures, in association with each initiatedseparate web search, a separate set of web search results returned toeach of the social network contacts within the ad hoc social navigationsub-network.

At block 508, the process 500 provides, to each of the social networkcontacts, a combined live search results view that includes eachcaptured separate set of web search results. The combined live searchresults view may be provided to each social network contact bycommunication of content to computing devices used by the respectivesocial network contacts. The combined live search results view may berepresented as described above within FIG. 3A through FIG. 3D orotherwise as appropriate for a given implementation. For example,instead of partitions, multiple tabbed browser views or other formattingmay be utilized, again as appropriate for a given implementation.

As described above and in more detail below, the combined live searchresults view provides navigation for social network contacts to specificweb pages contemporaneously accessed by other social network contacts inresponse to selection of a search result (or content summary asdescribed in more detail below) selected by the respective other socialnetwork contact. Providing the combined live search results view to eachsocial network contact may include providing, for each social networkcontact, a separate browser content partition within a unified contentpanel of the combined live search results view and providing thecaptured web search results returned to each social network contactwithin the respective separate browser content partitions provided forthe respective social network contacts.

At block 510, the process 500 obtains and renders a photograph of eachsocial network contact as an annotation to correlate the respective websearch results within a combined live social browsing bar associatedwith the combined live search results view. As such, other socialnetwork contacts within the temporary (at hoc) navigation socialsub-network may readily determine which set of search results areassociated with the respective other social network contacts.

At decision point 512, the process 500 makes a determination as towhether a selection by one of the social network contacts of one oftheir own search results has been detected within the live searchresults view. In response to determining that a selection by one of thesocial network contacts of one of their own search results has not beendetected within the live search results view, the process 500 beginsiteration at decision point 514 to determine whether processing withinthe combined live search results view and the temporary navigationsocial sub-network has been completed. Completion of processing withinthe combined live search results view and the temporary navigationsocial sub-network may be determined, for example, where all socialnetwork contacts have closed their respective views, where a configuredidle time associated with all social network contacts has expired, orwhere another indication of completion of the temporary navigationsocial sub-network has been detected as appropriate for a givenimplementation. In response to determining at decision point 514 thatprocessing within the combined live search results view and thetemporary navigation social sub-network has been completed, the process500 returns to decision point 502 and iterates as described above.Alternatively, in response to determining at decision point 514 thatprocessing within the combined live search results view and thetemporary navigation social sub-network has not been completed, theprocess 500 returns to decision point 512 and iterates as describedabove.

In response to determining at decision point 512 that a selection by oneof the social network contacts of one of their own search results hasbeen detected within the live search results view, the process 500provides web page content of the accessed web page to the respectiveuser within their combined live search results view at block 516. Atblock 518, the process 500 captures a portion of information contentassociated with a web page accessed by the selected hypertext link. Atblock 520, the process 500 begins generation of a content summary of thecaptured portion of the information content associated with the web pageaccessed by the selected hypertext link by generating a summarized textphrase as a summarized hypertext link that represents the capturedportion of the information content associated with the web page accessedby the selected hypertext link. This processing may be performed byanalyzing text content associated with the accessed web page or otherprocessing as appropriate for a given implementation. At block 522, theprocess 500 generates a content text summary that describes the capturedportion of the information content associated with the web page accessedby the selected hypertext link.

At block 524, the process 500 updates the combined live search resultsview provided to other social network contacts of the temporarynavigation sub-network with the generated content summary associatedwith the web page accessed by the selected hypertext link providedwithin a respective separate partition of the provided combined livesearch results view associated with the social contact that firstselected the hypertext link. As such, temporary navigation socialsub-network contacts may be presented with a summarized view ofadditional browsing activities of other social network contacts withinthe temporary navigation social sub-network. Any user that is interestedin the particular browsing activities of other social network contactsmay navigate along with the other social network contact, as describedabove and in more detail below.

It should further be noted that the generated content summary may alsobe considered an annotation associated with the respective socialnetwork contacts. As such, the generated content summary or the renderedannotated photograph may be selectable to invoke a contemporaneousnavigation with other social network contacts.

The process 500 transitions to the processing shown and described inassociation with FIG. 5B.

FIG. 5B illustrates additional processing associated with the process500 for real-time shared web browsing among social network contacts thatcorrelates initial web searches by social network contacts and thatprocesses subsequent browsing activities by the social network contactswithin a temporary social navigation sub-network. At decision point 526,the process 500 begins an iterative sub-processing phase to furthercorrelate contemporaneous browsing activities by social network contactswithin the temporary navigation social sub-network and makes adetermination as to whether further navigation has been detected inassociation with the user (any user) for which the content summary hasbeen created (e.g., the social contact that originally selected thehypertext link search result and for which the content summary has beencreated). As described above, breadcrumbs may be documented inassociation with additional navigation activities by social networkcontacts to assist social network contacts that are interested infollowing research/search activities of other users. It should furtherbe noted that, as described above, the process 500 may be multi-threadedand may asynchronously perform the described processing for each suchsocial network contact.

In response to determining at decision point 526 that further navigationhas been detected in association with the user (any user) for which thecontent summary has been created, the process 500 documents a breadcrumbof each hypertext link of any sub-page selected by the social networkcontact as the social network contact navigates at block 528. Thisprocessing may recursively be performed for each such detectednavigation.

In response to documenting the breadcrumb of each hypertext link of anysub-page selected by the social network contact as the social networkcontact navigates at block 528, or in response to determining atdecision point 526 that further navigation has not been detected inassociation with the user (any user) for which the content summary hasbeen created, the process 500 makes a determination at decision point530 as to whether any annotation of a social network contact has beenselected by another social network contact (e.g., to initiatecontemporaneous social browsing with the annotated social networkcontact). As such, the process 500 may detect a selection, by anotherone of the social network contacts to which the generated contentsummary is provided, of one of a rendered photograph/annotation (of thesocial network contact that selected the hypertext link rendered inassociation with the generated content summary) or a summarizedhypertext link that represents the captured portion of the informationcontent associated with the web page accessed by the selected hypertextlink.

In response to determining at decision point 530 that an annotation of asocial network contact has been selected by another social networkcontact, the process 500 navigates the combined live search results viewassociated with the other one of the social network contacts thatselected the annotation rendered in association with the generatedcontent summary (e.g., the photograph or the summarized hypertext link)to a specific sub-page of a website that the other social networkcontact that first selected the hypertext link is currently viewing atblock 532. At block 534, the process 500 highlights any documentedbreadcrumbs of an initial social network contact to annotate selectionsof the initial social network contact. For example, the process 500 mayhighlight, as a breadcrumb within the specific sub-page of the website,at least one additional hypertext link that the other social networkcontact that first selected the hypertext link has also selected withinthe specific sub-page of the website (as documented in association withblock 526 as described above). At block 536, the process 500 annotates,within partitions of the multiple social network contacts that arecontemporaneously accessing the same web page, with a contemporaneousbrowsing indicator, as described above in association with FIG. 3D.

In response to annotating the respective partitions of the multiplesocial network contacts that are contemporaneously accessing the sameweb page with a contemporaneous browsing indicator at block 536, or inresponse to determining at decision point 530 that an annotation of asocial network contact has not been selected by another social networkcontact, the process 500 makes a determination at decision point 538 asto whether the respective sub-processing associated with contemporaneousweb site accesses has been completed. An affirmative determination atdecision point 538 will be described in more detail further below.

In response to determining at decision point 538 that the respectivesub-processing associated with contemporaneous web site accesses has notbeen completed, the process 500 makes a determination at decision point540 as to whether to age any annotations. As described above,annotations may be aged by animation, such as size-based orresolution-based adjustments or changes to the respective annotations toindicate to other social network contacts that the respective searchactivities are no longer contemporaneous with the other social networkcontacts' current activities. Other users may still find the searchresults useful, though the other/inactive social network contact mayhave completed their respective research activities.

In response to determining at decision point 540 not to age anyannotations, the process 500 returns to decision point 526 and iterateswithin the respective sub-processing associated with contemporaneous website accesses, as described above. In response to determining atdecision point 540 to age any annotations, the process 500 adjusts atleast one of size and resolution of the respective annotation(s) inresponse to inactivity within the combined live search results viewassociated with the respective social network contacts at block 542.

The process 500 returns to decision point 538 to determine whether therespective sub-processing associated with contemporaneous web siteaccesses has been completed. In response to determining at decisionpoint 538 that the respective sub-processing associated withcontemporaneous web site accesses has been completed, the process 500returns to the processing described in association with FIG. 5A atdecision point 514 and iterates as described above.

It should be noted that while particular example processing has beenshown and described in association with the process 500, othervariations of sequences of operations may be utilized as appropriate fora given implementation. As such, the process 500 is not to be consideredlimiting with respect to sequences of processing or sub-processingtasks. For example, the determinations as to whether to age anannotation described in association with the decision point 540 mayalternatively be performed outside of the respective sub-proces sing ata higher level within the process 500. This processing has beendescribed at this location as a matter of convenience for presentationand due to limitations of page size within the respective drawing views.

Additionally, a navigation sharing configuration option may beconfigured by individual social network users that controls whether theyare interested in contributing to/participating in temporary navigationsocial sub-networks, and to granularly configure what, if any, browsingactivities are shared by the respective social network users with othersocial network users. Further, a social web-browsing activity log may becaptured by the process 500 and made available to document sharedresearch activities, as described above. Many other variations arepossible and all such variations are considered to be within the scopeof the present subject matter.

As such, the process 500 detects opportunities to create temporary/adhoc navigation social sub-networks, and forms temporary/ad hocnavigation social sub-networks of social network contacts to providecontemporaneous web browsing for the social network contacts. Summariesof navigation efforts by social network contacts within the temporary/adhoc navigation social sub-networks are created and provided to othersocial network contacts. Social network contacts may view the contentsummaries to determine whether they are also interested in therespective browsing activities of the other social network contacts. Ifof interest, the social network contacts may select annotationsassociated with the other social network contact(s) to invokecontemporaneous browsing of the same accessed web sites. Annotations maybe aged to represent the non-contemporaneous nature of search results orcontent summaries, while still providing access to research performed byother social network contacts within the temporary/ad hoc navigationsocial sub-networks.

As described above in association with FIG. 1 through FIG. 5B, theexample systems and processes provide real-time shared web browsingamong social network contacts. Many other variations and additionalactivities associated with real-time shared web browsing among socialnetwork contacts are possible and all are considered within the scope ofthe present subject matter.

Those skilled in the art will recognize, upon consideration of the aboveteachings, that certain of the above examples are based upon use of aprogrammed processor, such as the CPU 202. However, the invention is notlimited to such example embodiments, since other embodiments could beimplemented using hardware component equivalents such as special purposehardware and/or dedicated processors. Similarly, general purposecomputers, microprocessor based computers, micro-controllers, opticalcomputers, analog computers, dedicated processors, application specificcircuits and/or dedicated hard wired logic may be used to constructalternative equivalent embodiments.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), a portablecompact disc read-only memory (CD-ROM), an optical storage device, amagnetic storage device, or any suitable combination of the foregoing.In the context of this document, a computer readable storage medium maybe any tangible medium that can contain, or store a program for use byor in connection with an instruction execution system, apparatus, ordevice.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as JAVA™, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention have been described with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable storage medium that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablestorage medium produce an article of manufacture including instructionswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modems and Ethernet cards are just a few of thecurrently available types of network adapters.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a,” “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A system, comprising: an output module; and aprocessor programmed to: determine that at least two social networkcontacts involved in a social messaging interaction each initiate aseparate web search associated with the social messaging interaction;capture, in association with each initiated separate web search, aseparate set of web search results returned to each of the at least twosocial network contacts; and provide, via the output module, to each ofthe at least two social network contacts, a combined live search resultsview comprising each captured separate set of web search results, wherethe combined live search results view provides navigation to web contentreturned to other social network contacts.
 2. The system of claim 1,where the processor is further programmed to: form a temporary socialnavigation sub-network comprising the at least two social networkcontacts; configure a combined live social browsing bar within thecombined live search results view; provide a rendered photograph of eachof the at least two social network contacts of the temporary socialnavigation sub-network within the combined live social browsing bar inassociation with the respective captured separate set of web searchresults associated with the respective social network contact; andconfigure each rendered photograph as a selectable annotation thatoperates to invoke navigation of the separate set of web search resultsof the respective social network contact by other social networkcontacts that select the respective selectable annotation.
 3. The systemof claim 1, where the processor is further programmed to: detect aselection by one of the at least two social network contacts of a websearch result hypertext link of one of the web search results returnedto the respective one of the at least two social network contacts;capture a portion of information content associated with a web pageaccessed by the selected hypertext link; generate a content summary thatrepresents the captured portion of the information content associatedwith the web page accessed by the selected hypertext link, where thecontent summary comprises a summarized text phrase as a summarizedhypertext link and a content text summary that describes the capturedportion of the information content associated with the web page accessedby the selected hypertext link; and update the combined live searchresults view provided to other social network contacts with thegenerated content summary within a respective separate partition of thecombined live search results view associated with the respective one ofthe at least two social network contacts that first selected thehypertext link.
 4. The system of claim 3, where the processor is furtherprogrammed to: detect a selection by another one of the at least twosocial network contacts, to which the generated content summary isprovided, of a rendered selectable annotation associated with thegenerated content summary, where the rendered selectable annotationcomprises one of a rendered photograph of the one of the at least twosocial network contacts that first selected the hypertext link renderedin association with the generated content summary, and a summarizedhypertext link that represents the captured portion of the informationcontent associated with the web page accessed by the selected hypertextlink; and navigate the combined live search results view associated withthe other one of the at least two social network contacts that selectedthe rendered selectable annotation to a specific sub-page of a websitethat the one of the at least two social network contacts that firstselected the hypertext link is currently viewing.
 5. The system of claim4, where the processor is further programmed to highlight as abreadcrumb within the specific sub-page of the website at least oneadditional hypertext link that the one of the at least two socialnetwork contacts that first selected the hypertext link also selectedwithin the specific sub-page of the website.
 6. The system of claim 1,where, in being programmed to provide, via the output module, to each ofthe at least two social network contacts, the combined live searchresults view comprising each captured separate set of web searchresults, the processor is programmed to: provide, for each socialnetwork contact, a separate browser content partition within a unifiedcontent panel of the combined live search results view; and provide thecaptured web search results returned to the at least two social networkcontacts within the respective separate browser content partitionsprovided for the respective social network contacts.
 7. The system ofclaim 1, where the social messaging interaction is selected from a groupconsisting of a chat session messaging interaction, an instant messaginginteraction, an email messaging interaction, and a social networkmessaging interaction.
 8. A computer program product, comprising: acomputer readable storage medium having computer readable program codeembodied therewith, where the computer readable program code whenexecuted on a computer causes the computer to: determine that at leasttwo social network contacts involved in a social messaging interactioneach initiate a separate web search associated with the social messaginginteraction; capture, in association with each initiated separate websearch, a separate set of web search results returned to each of the atleast two social network contacts; and provide, to each of the at leasttwo social network contacts, a combined live search results viewcomprising each captured separate set of web search results, where thecombined live search results view provides navigation to web contentreturned to other social network contacts.
 9. The computer programproduct of claim 8, where the computer readable program code whenexecuted on the computer further causes the computer to: form atemporary social navigation sub-network comprising the at least twosocial network contacts; configure a combined live social browsing barwithin the combined live search results view; provide a renderedphotograph of each of the at least two social network contacts of thetemporary social navigation sub-network within the combined live socialbrowsing bar in association with the respective captured separate set ofweb search results associated with the respective social networkcontact; and configure each rendered photograph as a selectableannotation that operates to invoke navigation of the separate set of websearch results of the respective social network contact by other socialnetwork contacts that select the respective selectable annotation. 10.The computer program product of claim 8, where the computer readableprogram code when executed on the computer further causes the computerto: detect a selection by one of the at least two social networkcontacts of a web search result hypertext link of one of the web searchresults returned to the respective one of the at least two socialnetwork contacts; capture a portion of information content associatedwith a web page accessed by the selected hypertext link; generate acontent summary that represents the captured portion of the informationcontent associated with the web page accessed by the selected hypertextlink, where the content summary comprises a summarized text phrase as asummarized hypertext link and a content text summary that describes thecaptured portion of the information content associated with the web pageaccessed by the selected hypertext link; and update the combined livesearch results view provided to other social network contacts with thegenerated content summary within a respective separate partition of thecombined live search results view associated with the respective one ofthe at least two social network contacts that first selected thehypertext link.
 11. The computer program product of claim 10, where thecomputer readable program code when executed on the computer furthercauses the computer to: detect a selection by another one of the atleast two social network contacts, to which the generated contentsummary is provided, of a rendered selectable annotation associated withthe generated content summary, where the rendered selectable annotationcomprises one of a rendered photograph of the one of the at least twosocial network contacts that first selected the hypertext link renderedin association with the generated content summary, and a summarizedhypertext link that represents the captured portion of the informationcontent associated with the web page accessed by the selected hypertextlink; and navigate the combined live search results view associated withthe other one of the at least two social network contacts that selectedthe rendered selectable annotation to a specific sub-page of a websitethat the one of the at least two social network contacts that firstselected the hypertext link is currently viewing.
 12. The computerprogram product of claim 11, where the computer readable program codewhen executed on the computer further causes the computer to highlightas a breadcrumb within the specific sub-page of the website at least oneadditional hypertext link that the one of the at least two socialnetwork contacts that first selected the hypertext link also selectedwithin the specific sub-page of the website.
 13. The computer programproduct of claim 8, where, in causing the computer to provide, to eachof the at least two social network contacts, the combined live searchresults view comprising each captured separate set of web searchresults, the computer readable program code when executed on thecomputer causes the computer to: provide, for each social networkcontact, a separate browser content partition within a unified contentpanel of the combined live search results view; and provide the capturedweb search results returned to the at least two social network contactswithin the respective separate browser content partitions provided forthe respective social network contacts.
 14. The computer program productof claim 8, where the social messaging interaction is selected from agroup consisting of a chat session messaging interaction, an instantmessaging interaction, an email messaging interaction, and a socialnetwork messaging interaction.